02 - User-Journey
Relevant source files
Purpose and ScopeLink copied!
This document walks through the complete customer experience in the godeep.wiki system, from initial landing page visit to receiving the final documentation. It covers the three main user-facing pages, the data flow mechanisms that link payment to repository access, and the behind-the-scenes automation that processes customer requests.
For technical details about specific components referenced in this journey:
- Payment processing internals: see Payment Processing
- GitHub OAuth and App installation mechanics: see Authentication & GitHub Integration
- Automation pipeline details: see Automation System
- Admin operations: see Admin Panel
Journey OverviewLink copied!
The user journey consists of three sequential phases: payment, GitHub connection, and confirmation. Each phase is implemented as a separate Next.js page with specific responsibilities for capturing and forwarding correlation data.
Complete User Journey FlowLink copied!
Sources: app/page.tsx L1-L213
Phase 1: Landing Page & PaymentLink copied!
Landing Page ComponentsLink copied!
The landing page (app/page.tsx
) serves as the entry point and conversion funnel. It is implemented as a single server component with no client-side state management.
| Component | Purpose | Location |
|---|---|---|
| Hero Section | Displays value proposition and primary CTA | app/page.tsx L32-L69 |
| BeamButton | Animated payment button | components/beam-button.tsx L10-L25 |
| SpotlightCard | Interactive feature cards | components/spotlight-card.tsx L10-L67 |
| IconGlow | Hover-animated icon containers | components/icon-glow.tsx L10-L19 |
Payment Flow InitiationLink copied!
The payment button triggers a server action that creates a Stripe checkout session:
Key Implementation Details:
- Form Submission: The landing page uses Next.js server action syntax with
<form action={createCheckoutSession}>at app/page.tsx L62-L66 - Product Configuration: Fixed $10 price for "DeepWiki Analysis" product at app/actions.ts
- Success URL Template: Embeds
{CHECKOUT_SESSION_ID}placeholder which Stripe replaces with actual session_id - No Client JavaScript: Payment initiation works without JavaScript (progressive enhancement)
Sources: app/page.tsx L1-L213
components/beam-button.tsx L1-L26
components/spotlight-card.tsx L1-L68
components/icon-glow.tsx L1-L20
Phase 2: Success Page & GitHub ConnectionLink copied!
Success Page ResponsibilitiesLink copied!
The success page (app/success/page.tsx
) is the critical linking mechanism between payment and repository access. It receives the session_id from Stripe and embeds it in the GitHub OAuth flow.
Success Page URL ParametersLink copied!
| Parameter | Source | Purpose | Required |
|---|---|---|---|
session_id | Stripe redirect | Links payment to installation | Yes |
error | OAuth callback redirect | Displays error messages | No |
Sources: app/success/page.tsx L10-L71
GitHub Connection FlowLink copied!
The "Connect GitHub" button initiates a multi-step OAuth and App installation flow:
Critical Security Features:
- State Token: CSRF protection via crypto.randomUUID() stored in
github_oauth_statecookie - HTTP-Only Cookies: Token theft prevention - cookies not accessible via JavaScript
- Secure Flag: Production-only flag ensures cookies only sent over HTTPS
- 1-Hour Expiry: Limits replay attack window
Repository Selection Warning:
The success page displays a prominent amber alert (app/success/page.tsx L38-L40
) instructing users to select "Only select repositories" during GitHub App installation. This is a critical security recommendation that limits the scope of repository access granted to the app.
The page also embeds a 15-second instructional video (app/success/page.tsx L44-L53
) hosted at https://cdn.vibecoders.school/assets/godeep-wiki.webm that demonstrates the repository selection process.
Sources: app/success/page.tsx L1-L72
Phase 3: Thank You Page & Delivery ExpectationsLink copied!
Thank You Page StructureLink copied!
After successful GitHub connection, users are redirected to the thank you page (app/thank-you/page.tsx
) which serves three purposes:
- Confirmation: Visual feedback that setup is complete
- Expectation Setting: Clear delivery timeline (1-9 hours)
- Exit Navigation: Return to homepage option
Delivery Information DisplayLink copied!
The thank you page presents delivery expectations in a structured blue info box (app/thank-you/page.tsx L20-L30
):
| Element | Content | Purpose |
|---|---|---|
| Icon | Mail icon | Visual indicator |
| Heading | "What happens next?" | Section title |
| Email Address | noreply@godeep.wiki | Sender identification |
| Delivery Format | ZIP file | File format expectation |
| Timeline | 1-9 hours | Processing time window |
Auto-Redirect Behavior:
The RedirectTimer component (app/success/RedirectTimer.tsx L1-L23
) implements a 10-second countdown that automatically redirects users to the homepage. This is implemented using:
useEffecthook withsetTimeout()- Router navigation via
useRouter().push("/") - Cleanup function to clear timer on component unmount
- Visual countdown text: "Redirecting to home in 10 seconds..."
Sources: app/thank-you/page.tsx L1-L49
app/success/RedirectTimer.tsx L1-L23
Behind-the-Scenes AutomationLink copied!
Post-Connection Event FlowLink copied!
After the user completes the visible journey, several automated processes trigger in parallel. These are invisible to the user but critical for delivering the final documentation.
Data Correlation MechanismLink copied!
The system uses cookies to link the Stripe session_id to the GitHub installation_id:
| Stage | Data Available | Storage Mechanism |
|---|---|---|
| Success Page | session_id (from URL) | None - passed in OAuth URL |
| OAuth Initiation | session_id (from query param) | Stored in stripe_session_id cookie |
| OAuth Callback | installation_id (from GitHub) | Retrieved from stripe_session_id cookie |
| Logged Data | session_id + installation_id | Vercel logs (permanent record) |
Cookie Flow Detail:
- Set Cookie: api/auth/github receives
?session_id=cs_xxxand stores it instripe_session_idcookie with 1-hour expiry - State Preserved: Browser maintains both
stripe_session_idandgithub_oauth_statecookies during GitHub redirect - Retrieve Cookie: api/auth/github/callback reads
stripe_session_idcookie to correlate payment with installation - Log Complete Record: Callback logs combined data:
session_id,installation_id,username,email,timestamp
Sources: CLAUDE.md L44-L50
Journey Data Flow SummaryLink copied!
Complete Data LineageLink copied!
Critical TimeoutsLink copied!
| Component | Duration | Purpose |
|---|---|---|
| OAuth State Cookie | 1 hour | CSRF protection validity window |
| Session ID Cookie | 1 hour | Payment-to-installation link validity |
| Thank You Auto-Redirect | 10 seconds | User navigation convenience |
Sources: app/page.tsx L1-L213
app/success/RedirectTimer.tsx L1-L23
User Journey VariationsLink copied!
Error Handling PathsLink copied!
The success page can display error states if the OAuth flow fails:
Error Types:
access_denied: User declined GitHub App installation- Generic errors: Catch-all for other OAuth failures
Error display logic at app/success/page.tsx L31-L35
checks for error URL parameter and shows contextual messages.
Missing Session ID HandlingLink copied!
If a user navigates directly to /success without a session_id, the page immediately redirects to the homepage (app/success/page.tsx L17-L19
):
if (!session_id) { redirect("/")}
This prevents incomplete flows and ensures users always follow the payment → GitHub connection → confirmation path.
Sources: app/success/page.tsx L10-L72
Refresh this wiki
Last indexed: 23 November 2025 (922b35)
On this page
- User Journey
- Purpose and Scope
- Journey Overview
- Complete User Journey Flow
- Phase 1: Landing Page & Payment
- Landing Page Components
- Payment Flow Initiation
- Phase 2: Success Page & GitHub Connection
- Success Page Responsibilities
- Success Page URL Parameters
- GitHub Connection Flow
- Phase 3: Thank You Page & Delivery Expectations
- Thank You Page Structure
- Delivery Information Display
- Behind-the-Scenes Automation
- Post-Connection Event Flow
- Data Correlation Mechanism
- Journey Data Flow Summary
- Complete Data Lineage
- Critical Timeouts
- User Journey Variations
- Error Handling Paths
- Missing Session ID Handling
Ask Devin about godeep.wiki-jb